package servico;

import dao.EstadiaDAO;
import java.util.List;
import modelo.PedidoCadastro;
import dao.PedidoCadastroDAO;
import dao.fabrica.FabricaDeDAOs;
import excecao.AplicacaoException;
import excecao.ObjetoDuplicadoException;
import excecao.ObjetoNaoEncontradoException;

public class PedidoCadastroAppService {

    private static PedidoCadastroDAO pedidoCadastroDAO = FabricaDeDAOs.getDAO(PedidoCadastroDAO.class);
    private static EstadiaDAO estadiaDAO = FabricaDeDAOs.getDAO(EstadiaDAO.class);
    
    
    private static DataAtual d = new DataAtual();
    String dataAtual = d.getData();

    public void inclui(PedidoCadastro umPedidoCadastro) throws AplicacaoException {
        try {
            pedidoCadastroDAO.inclui(umPedidoCadastro);

        } catch (ObjetoDuplicadoException e) {
            throw new AplicacaoException("Usuário já cadastrado");
        }

    }

    public void altera(PedidoCadastro umPedidoCadastro)
            throws AplicacaoException {
        try {

            pedidoCadastroDAO.altera(umPedidoCadastro);

        } catch (ObjetoNaoEncontradoException e) {

            throw new AplicacaoException("Usuario não encontrado");
        }
    }

    public void exclui(PedidoCadastro umPedidoCadastro)
            throws AplicacaoException {
        try {

            pedidoCadastroDAO.exclui(umPedidoCadastro);

        } catch (ObjetoNaoEncontradoException e) {

            throw new AplicacaoException("Usuario não encontrado");
        }
    }

    public PedidoCadastro recuperaUmPedidoCadastro(PedidoCadastro umPedidoCadastro)
            throws AplicacaoException {
        try {

            PedidoCadastro pedidoCadastro = pedidoCadastroDAO.recuperaUmPedidoCadastro(umPedidoCadastro);

            return pedidoCadastro;
        } catch (ObjetoNaoEncontradoException e) {

            throw new AplicacaoException("Usuario não encontrado");
        }
    }

    public List<PedidoCadastro> recuperaPedidoCadastros() {
        List<PedidoCadastro> pedidoCadastros;

        pedidoCadastros = pedidoCadastroDAO.recuperaPedidoCadastros();

        return pedidoCadastros;
    }

        
     public void realizaPedidoDeCadastro(PedidoCadastro pedidoCadastro) throws ObjetoDuplicadoException {
        pedidoCadastro.setStatus("Aguardando_Aprovacao");
        pedidoCadastroDAO.inclui(pedidoCadastro);
    }
    
}
